home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / machine / z80fmly.h < prev   
Text File  |  2000-04-04  |  3KB  |  89 lines

  1. /*  Z80 FMLY.H   Z80 FAMILY IC EMURATION */
  2.  
  3.  
  4. #define MAX_CTC 2
  5.  
  6. #define NOTIMER_0 (1<<0)
  7. #define NOTIMER_1 (1<<1)
  8. #define NOTIMER_2 (1<<2)
  9. #define NOTIMER_3 (1<<3)
  10.  
  11. typedef struct
  12. {
  13.     int num;                                      /* number of CTCs to emulate */
  14.     int baseclock[MAX_CTC];                           /* timer clock */
  15.     int notimer[MAX_CTC];                         /* timer disablers */
  16.     void (*intr[MAX_CTC])(int which);             /* callback when change interrupt status */
  17.     mem_write_handler zc0[MAX_CTC];   /* ZC/TO0 callback */
  18.     mem_write_handler zc1[MAX_CTC];   /* ZC/TO1 callback */
  19.     mem_write_handler zc2[MAX_CTC];   /* ZC/TO2 callback */
  20. } z80ctc_interface;
  21.  
  22. void z80ctc_init (z80ctc_interface *intf);
  23.  
  24. double z80ctc_getperiod (int which, int ch);
  25.  
  26. void z80ctc_reset (int which);
  27. void z80ctc_0_reset (void);
  28. void z80ctc_1_reset (void);
  29.  
  30. void z80ctc_w (int which, int offset, int data);
  31. WRITE_HANDLER( z80ctc_0_w );
  32. WRITE_HANDLER( z80ctc_1_w );
  33.  
  34. int z80ctc_r (int which, int offset);
  35. READ_HANDLER( z80ctc_0_r );
  36. READ_HANDLER( z80ctc_1_r );
  37.  
  38. void z80ctc_trg_w (int which, int trg, int offset, int data);
  39. WRITE_HANDLER( z80ctc_0_trg0_w );
  40. WRITE_HANDLER( z80ctc_0_trg1_w );
  41. WRITE_HANDLER( z80ctc_0_trg2_w );
  42. WRITE_HANDLER( z80ctc_0_trg3_w );
  43. WRITE_HANDLER( z80ctc_1_trg0_w );
  44. WRITE_HANDLER( z80ctc_1_trg1_w );
  45. WRITE_HANDLER( z80ctc_1_trg2_w );
  46. WRITE_HANDLER( z80ctc_1_trg3_w );
  47.  
  48. /* Z80 DaisyChain controll */
  49. int z80ctc_interrupt( int which );
  50. void z80ctc_reti( int which );
  51. /*--------------------------------------------------------------------*/
  52. #define MAX_PIO 1
  53.  
  54. typedef struct
  55. {
  56.     int num;                                      /* number of PIOs to emulate */
  57.     void (*intr[MAX_CTC])(int which);             /* callback when change interrupt status */
  58.     void (*rdyA[MAX_PIO])(int data );             /* portA ready active callback (do not support yet)*/
  59.     void (*rdyB[MAX_PIO])(int data );             /* portB ready active callback (do not support yet)*/
  60. } z80pio_interface;
  61.  
  62. void z80pio_init (z80pio_interface *intf);
  63. void z80pio_reset (int which);
  64. void z80pio_d_w( int which , int ch , int data );
  65. void z80pio_c_w( int which , int ch , int data );
  66. int z80pio_c_r( int which , int ch );
  67. int z80pio_d_r( int which , int ch );
  68.  
  69. void z80pio_p_w( int which , int ch , int data );
  70. int z80pio_p_r( int which , int ch );
  71.  
  72. /* Z80 DaisyChain controll */
  73. int z80pio_interrupt( int which );
  74. void z80pio_reti( int which );
  75.  
  76. /* mame interface */
  77. void z80pio_0_reset (void);
  78.  
  79. /* this functions can use when C/D = A0 , A/B = A1 */
  80. WRITE_HANDLER( z80pio_0_w );
  81. READ_HANDLER( z80pio_0_r );
  82.  
  83. WRITE_HANDLER( z80pioA_0_p_w );
  84. WRITE_HANDLER( z80pioB_0_p_w );
  85. READ_HANDLER( z80pioA_0_p_r );
  86. READ_HANDLER( z80pioB_0_p_r );
  87.  
  88.  
  89.